1. Field of the Invention
The present invention relates to an apparatus for debugging a data flow program, and more specifically, to a debugging apparatus capable of debugging a source program by indicating contents or variables of respective lines of a source program which is developed into a data flow program.
2. Description of the Related Art
Most of the conventional computers comprise von Neumann type computer with various instructions are stored as a program in a program memory and addresses of the program memory are successively designated by a program counter to successively read and execute the instructions.
Another type of the conventional computers, which have a data flow type information, processing apparatus and is a non-von Neumann computer, do not employ the idea of successive execution of instructions by the program counter. Such a data flow type information processing apparatus has an architecture on the premise that the instructions are processed in parallel, in which the execution of an instruction is permitted as soon as all the data for calculation are prepared, and a plurality of instructions are simultaneously executed dependent on the data, as a result the program is carried out in parallel in accordance with a natural flow of the data. Consequently, the time required for the operation can be significantly reduced.
FIG. 1 is a schematic block diagram illustrating an example of a conventional data flow type information processing apparatus, FIG. 2 illustrates a basic structure of a data packet circulating respective portions of the information processing apparatus illustrated in FIG. 1, and FIG. 3 illustrates a portion of a data flow program stored in the program memory.
The structure and the operation of the data flow type information processing apparatus will be briefly described with reference to FIGS. 1, 2 and 3. The data packet illustrated in FIG. 2 has a destination field loaded with destination information, an instruction field loaded with instruction information and a data 1 field and a data 2 field, either one of which is loaded with operand data.
Referring to FIG. 1, a program storing portion (PS) 1 includes a program memory, which stores a data flow program including the destination information and the instruction information as illustrated in FIG. 3. The address of the program storing portion 1 is designated in response to the destination information of the data packet, so that the destination information and the instruction information are read and each piece of information is stored in the destination field and in the instruction field of the data packet to be applied to FIFO input buffers 2a and 2b.
A paired data detector (FC) 2 queues data packets inputted from the programs storing portion 1 through the input buffers 2a and 2b for storing operand data of one of the two data packets, where a hit of destination information occurs, into a data field of the other packet and outputting the same to an FIFO input buffer 3a. On this occasion, the above mentioned one of the data packet is erased.
An operation processing portion (FP) 3 decodes instruction information of the data packet inputted from the paired data detecting portion 2 through the input buffer 3a, and performs predetermined processing for the two operand data of the paired data, so that the result is stored in a data field of the data packet and the same is outputted to a branching portion 4.
The branching portion 4 applies the data packet to an FIFO input buffer 1a or to an external data memory (EDS) 5 through an FIFO input buffer 5a in response to the destination information of the data packet. The data packet from the input buffer 1a or the data packet outputted from the external data memory 5 through an output buffer 5b is applied to a junction 6, which applies the data packets to the program storing portion 1 in the order of receipt thereof.
In the data flow type image processing apparatus illustrated n FIG. 1, the operating process proceeds in accordance with the program stored in the program storing portion 1 while the data packet circulates along the path of the program storing portion 1.fwdarw.the paired data detecting portion 2 .fwdarw.the operation processing portion 3 .fwdarw.the branching portion 4 (.fwdarw.the external data memory 5) .fwdarw.the junction 6 .fwdarw.the program storing portion 1 . . . .
FIG. 4 illustrates a schematic structure of the program storing portion 1 illustrated in FIG. 1. Referring to FIG. 4, an input data latch portion 11 holds the destination information and the operand data of the data packet, and the instruction information is erased. Responsive to the maintained operand and the destination information, new destination information and an instruction information derived from the program memory 13 are applied to the output data latch portion 14 to be latched. The destination information latched in the input data latch portion 11 is applied to an address calculating portion 12, so that the address of the program memory 13 is calculated from the destination information. The program memory 13 stores a data flow program including the destination information and the instruction information, as illustrated shown in the above described FIG. 3, and the new destination information and the instruction information are applied to the output data latch portion 14 in response to the above mentioned address.
In the above described data flow type information processing apparatus, the execution of an instruction is permitted as soon as all the data for the operation are prepared, and the program proceeds in parallel and non-synchronously in accordance with the natural flow of data. When, a source program written to be carried out on a common von Neumann computer is developed into a data flow program, the order of execution is not always the same as the order of execution in the non-von Neumann computer. A problem thereby results, that is, the errors in the operation program cannot be found or corrected by a simple tracing of the program. It is more difficult to find errors, if any, in executing the developed data flow program, and it is also very difficult to know the relation with the source program.